package com.woniuxy.secondfactory;

import com.woniuxy.firstfactory.Person;

/**
 * @Author: 马宇航
 * @Todo: 第二个工厂模式，解耦 工厂和目标类的耦合！
 * @DateTime: 22/03/23/0023 上午 11:42
 * @Component: 成都蜗牛学苑
 **/
public class MarkPersonFactoryTwo {
    /**
     * TODO 确保 即使添加了新的类，我也不需要去修改这个工厂！
     * ChangeLog : 1. 创建 (22/03/23/0023 下午 2:13 [马宇航]);
     * @param className 传入类名
     * @return com.woniuxy.firstfactory.Person
    */
    public Person doMakePerson(String className){
        try {
            return  (Person)Class.forName("com.woniuxy.firstfactory.impl." + className).newInstance();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        return null;
    }
}
